home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-11-21 | 28.4 KB | 474 lines | [TEXT/MPS ] |
- (* ******************************************************************************************** *)
- (* * * *)
- (* * X.25 Interface Library * *)
- (* * ---------------------- * *)
- (* * * *)
- (* * X25_Interface.h * *)
- (* * * *)
- (* *..........................................................................................* *)
- (* * * *)
- (* * Definitions that are required in order to use the "X.25 Interface Library" set * *)
- (* * of Interface routines. * *)
- (* * * *)
- (* * * *)
- (* *------------------------------------------------------------------------------------------* *)
- (* * * *)
- (* * Copyright Apple Computer, Inc. 1988-89 * *)
- (* * All Rights Reserved * *)
- (* * Apple Computer Confidential * *)
- (* * * *)
- (* *------------------------------------------------------------------------------------------* *)
- (* * * *)
- (* * Revision History: * *)
- (* * * *)
- (* * Date Individual Changes * *)
- (* * ......... ................... .................................................. * *)
- (* * * *)
- (* * 05 Jul 88 D. N. Willey Original Version * *)
- (* * " Rick Holzgrafe * *)
- (* * 01 Mar 88 James Beninghaus Pascal Version * *)
- (* * * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- UNIT X25_Interface;
- INTERFACE
-
- USES Types, AppleTalk;
-
- CONST
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * Return Codes ( "return_code" ) * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Non Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_no_error = $0000; (* Good Return ( not an error ) *)
- X25if_io_pending = $0001; (* Set while async I/O is incomplete *)
- X25if_io_would_block = $0002; (* Set if blocking I/O would block *)
- X25if_user_cancelled = $0008; (* From BlackBook etc. *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Catch All During Development . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_generic_error = $FFFF; (* Error, but no futher information available *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . User Procedure Error on Call . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_procedure_error = $0010;
- X25if_init_prior_call = $0011;
- X25if_init_no_call = $0012;
- X25if_vccb_prior_allocation = $0014;
- X25if_vccb_no_allocation = $0015;
- X25if_vccb_not_open = $0016;
- X25if_server_prior_connect = $0018;
- X25if_server_not_connected = $0019;
- X25if_user_not_validated = $001C;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . System Detected Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_system_error = $0020;
- X25if_OS_error = $0021; (* status_code = actual O.S. error code *)
- X25if_no_mem_alloc = $0022; (* status_code = mem alloc request *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Error on Communication to X.25 Server . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_transmission_error = $0030;
- X25if_adsp_shutdown = $0031;
- X25if_ipc_shutdown = $0032;
- X25if_adsp_error = $0033; (* status_code = adsp/driver error code *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Internal Consistency Checks . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_consistency_error = $0040;
- X25if_init_corrupted = $0041;
- X25if_vccb_corrupted = $0042;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Request for Support that is Not Available . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_no_support = $0050;
- X25if_adsp_no_support = $0051; (* returned on a "X25_Server_Connect" request *)
- X25if_ipc_no_support = $0052; (* returned on a "X25_Server_Connect" request *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Request for Component that is Not Available . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_service_not_avail = $0060;
- X25if_mpp_not_avail = $0061; (* returned on a "X25_Server_Connect" request *)
- X25if_dsp_not_avail = $0062; (* returned on a "X25_Server_Connect" request *)
- X25if_ipc_not_avail = $0063; (* returned on a "X25_Server_Connect" request *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Request for X.25 Server that is Not Available . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_server_not_avail = $0070; (* returned on a "X25_Server_Connect" request *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . User Validation Failure . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_validation_failure = $0080; (* returned on a "X25_Server_Connect" request *)
- X25if_invalid_validator_ver = $0081; (* returned on a "X25_Server_Connect" request *)
- X25if_invalid_validator_msg = $0082; (* returned on a "X25_Server_Connect" request *)
- X25if_no_validator = $0083; (* returned on a "X25_Server_Connect" request *)
- X25if_validator_shutdown = $0084; (* returned on a "X25_Server_Connect" request *)
- X25if_invalid_name = $0088; (* returned on a "X25_Server_Validate" request *)
- X25if_invalid_password = $0089; (* returned on a "X25_Server_Validate" request *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . I/O Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_io_error = $0100;
- X25if_io_aborted = $0101; (* Set in result_code of async read or write *)
- (* if X25_Server_Discnct was called *)
- X25if_io_timeout = $0102; (* for synchrouous I/0 calls only *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Read Related . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_read_buffer_error = $0110;
- X25if_read_nil_ptr = $0111;
- X25if_read_buf_overflow = $0112;
- X25if_read_buf_underflow = $0113;
- X25if_prior_read_pending = $0114;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Write Related . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_write_buffer_error = $0120;
- X25if_write_nil_ptr = $0121;
- X25if_write_buf_overflow = $0122;
- X25if_write_buf_underflow = $0123;
- X25if_prior_write_pending = $0124;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . In Buffer Related . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_in_buffer_error = $0130;
- X25if_in_nil_ptr = $0131;
- X25if_in_buf_overflow = $0132;
- X25if_in_buf_underflow = $0133;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Out Buffer Related . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_out_buffer_error = $0140;
- X25if_out_nil_ptr = $0141;
- X25if_out_buf_overflow = $0142;
- X25if_out_buf_underflow = $0143;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Message Header Errors (Read) . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_header_error = $0180;
- X25if_header_version = $0181;
- X25if_header_underflow = $0182; (* status_code = header length *)
- X25if_unexpected_header = $0183; (* status_code = header "Type" *)
- X25if_unknown_header = $0184; (* status_code = header "Type" *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Packet Errors (Read) . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_packet_error = $0190;
- X25if_packet_overflow = $0191; (* status_code = packet length *)
- X25if_packet_underflow = $0192; (* status_code = packet length *)
- X25if_unexpected_packet = $0193; (* status_code = packet type code *)
- X25if_unknown_packet = $0194; (* status_code = packet type code *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Packet Encode Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_encode_error = $0200;
- X25if_syntax_error = $0201; (* status_code = input buffer offset to error *)
- X25if_overlength_field = $0202;
- X25if_duplicate_facility = $0208; (* status_code = input buffer offset to error *)
- X25if_inconsistent_facility = $0209; (* status_code = input buffer offset to error *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Packet Decode Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_decode_error = $0210;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Connect Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_X25_Call_error = $0280;
- X25if_call_cleared = $0281; (* status_code = clearing cause field *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Listen Registration Errors . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_listen_reg_error = $0290; (* status_code = registration error *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . X.25 Listen Registration Refused . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_listen_reg_refused = $02A0; (* status_code = registration error *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Chooser Access . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_chooser_error = $0300;
- X25if_chooser_not_avail = $0301;
- X25if_chooser_nbp_format = $0308;
-
- (* ............................................................................................ *)
- (* . . *)
- (* . Black Book Access . *)
- (* . . *)
- (* ............................................................................................ *)
-
- X25if_blackbook_error = $0310;
- X25if_blackbook_not_avail = $0311;
- X25if_blackbook_open_err = $0312; (* status_code = black book error *)
- X25if_blackbook_access_err = $0313; (* status_code = black book error *)
- X25if_blackbook_nbp_format = $0318;
- X25if_blackbook_data_format = $0319;
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * Status Codes ( "status_code" ) * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- X25if_no_status = $0000;
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * X25_IO_def Flag Field Mask * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- IF_asynchronous = $8000; (* Request Asynchronous Operation *)
- IF_blocking = $4000; (* Request Blocking Operation *)
- IF_expedited = $2000; (* Request Expedited Transmission *)
- IF_more = $1000; (* More data to come *)
-
- TYPE
-
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
- (* + + *)
- (* + Data Manipulation I/O Block (part of Circuit Control Block) + *)
- (* + + *)
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
-
- X25_Data_def = PACKED RECORD
-
- max_length : INTEGER; (* Max Data Length of Buffer (bytes) *)
- req_length : INTEGER; (* Requested Data Length to Process (bytes) *)
- act_length : INTEGER; (* Actual Data Length Processed (bytes) *)
- reserved : INTEGER; (* Reserved for future use *)
- data_ptr : Ptr; (* Data Pointer *)
-
- END;
-
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
- (* + + *)
- (* + Async/Sync I/O Block (part of Circuit Control Block) + *)
- (* + + *)
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
-
- X25_IO_def = PACKED RECORD
-
- return_code : OSErr; (* Returned Error Code (async r/w) *)
- status_code : OSErr; (* Detailed Status Code (async r/w) *)
-
- completion : ProcPtr; (* Completion routine for Asynchronous I/O *)
-
- timeout : INTEGER; (* Timeout value for Synchronous I/O *)
-
- x25_IO_mask : INTEGER; (* Flag Field *)
-
- max_length : INTEGER; (* Max Data Length of Buffer (bytes) *)
- req_length : INTEGER; (* Requested Data Length to Transfer (bytes) *)
- act_length : INTEGER; (* Actual Data Length Transfered (bytes) *)
- reserved : INTEGER; (* Reserved for future use *)
- data_ptr : Ptr; (* Data Pointer *)
-
- END;
-
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
- (* + + *)
- (* + X.25 Circuit Control Block + *)
- (* + + *)
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
-
- tcb_def_ptr = ^tcb_def;
- tcb_def = PACKED RECORD
-
- return_code : OSErr; (* Returned Error Code (non r/w) *)
- status_code : OSErr; (* Detailed Status Code (non r/w) *)
-
- ref_con : LONGINT; (* Users Reference (value or pointer) *)
-
- in_data : X25_Data_def; (* Input Area for Data Manipulation Operations *)
- out_data : X25_Data_def; (* Output Area for Data Manipulation Operations *)
-
- read_data : X25_IO_def; (* Async/Sync Read Area *)
- write_data : X25_IO_def; (* Async/Sync Write Area *)
-
- (* ............................................................................................ *)
- (* . . *)
- (* . *** INTERNAL USE ONLY *** . *)
- (* . The following fields are reserved for internal use only and may change . *)
- (* . . *)
- (* ............................................................................................ *)
-
- vccb_ref_ptr : Ptr; (* Virtual Circuit Control Block pointer *)
- tcb_chain_ptr : tcb_def_ptr; (* CCB chain pointer *)
- users_A5 : LONGINT; (* Copy of user's A5 *)
-
- END;
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * Values for the useage type parameter of "X25_Open" call * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- useage_type_def = ( application_type, desk_accessory_type, driver_type );
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * Values for the connection_method parameter of "X25_Server_Connect" call * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
- connection_method_def = ( connect_via_best, connect_via_ipc, connect_via_adsp );
-
- (* ******************************************************************************************** *)
- (* * * *)
- (* * X25_Interface Library Functions * *)
- (* * * *)
- (* ******************************************************************************************** *)
-
-
- FUNCTION X25_Open ( memory_allocator : ProcPtr; useage_type : useage_type_def ) : OSErr;
- FUNCTION X25_Close : OSErr;
-
- FUNCTION X25_vccb_Open ( tcb : tcb_def_ptr; memory_allocator : ProcPtr; max_packet_size : INTEGER) : OSErr;
- FUNCTION X25_vccb_Close ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_Chooser ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_BlackBook ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Set_Server_ID ( tcb : tcb_def_ptr; server_name_string : Ptr; server_zone_string : Ptr ) : OSErr;
- FUNCTION X25_Get_Server_ID ( tcb : tcb_def_ptr; server_name_string : Ptr; server_zone_string : Ptr ) : OSErr;
-
- FUNCTION X25_Set_User_ID ( tcb : tcb_def_ptr; user_name_string : Ptr; user_password_string : Ptr ) : OSErr;
-
- FUNCTION X25_Server_Connect ( tcb : tcb_def_ptr; connection_method : connection_method_def ) : OSErr;
- FUNCTION X25_Server_Authorize ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Server_Discnct ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_Read ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Write ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Kill_Read ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Kill_Write ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_Connect ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Call ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Listen ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Accept ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Discnct ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_encode_call_reg ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_call_req ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_call_acpt ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_clear ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_clear_conf ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_interrupt ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_reset ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_encode_data ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_decode_clear ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_decode_data ( tcb : tcb_def_ptr ) : OSErr;
-
- FUNCTION X25_Server_Status ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Link_Status ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_Circuit_Status ( tcb : tcb_def_ptr ) : OSErr;
- FUNCTION X25_msg_header_size : LONGINT;
-
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
- (* + + *)
- (* + End + *)
- (* + + *)
- (* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *)
-
- END.